import {app, BrowserWindow, screen} from 'electron';
// 主进程在生产模式下不能引入相对路径的库，需要以库名方式引入
import tnxetMain_prod from '@truenewx/tnxet/src/tnxet-main.js';

let tnxetMain = tnxetMain_prod;
if (tnxetMain.isProduction()) {
    tnxetMain.done = true;
} else {
    import('../tnxjs/tnxet/src/tnxet-main.js').then(module => {
        tnxetMain = module.default;
        tnxetMain.done = true;
    });
}

function createWindow() {
    if (tnxetMain.done) {
        delete tnxetMain.done;
        const primaryDisplay = screen.getPrimaryDisplay();
        const {width, height} = primaryDisplay.workAreaSize;
        const root = tnxetMain.isProduction() ? 'build' : 'src';
        let iconPath = tnxetMain.getAbsolutePathBasedOnApp(root + '/renderer/assets/image/icon-128-primary-bg.png');
        let win = tnxetMain.createWindow({
                width,
                height,
                icon: iconPath,
                webPreferences:
                    {
                        nodeIntegration: true, // 是否集成nodejs
                        contextIsolation:
                            false, // 必须设置为 false
                        enableRemoteModule:
                            true, // 是否启用远程模块
                    }
                ,
            })
        ;

        win.setMenu(null);
        win.enableDevTools();

        if (tnxetMain.isProduction()) { // 生产模式，加载构建好的入口页面文件
            win.loadFile('./build/index.html');
        } else { // 开发模式，加载 Vite 服务器的 URL
            win.loadURL('http://localhost:9000');
        }
        win.maximize();
    } else {
        setTimeout(() => {
            createWindow();
        }, 100);
    }
}

app.whenReady().then(createWindow);

app.on('window-all-closed', () => {
    if (process.platform !== 'darwin') {
        app.quit();
    }
});

app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) {
        createWindow();
    }
});
